Sensitivity Analysis is a technique widely used in multiple technical areas to monitor how small variations of a system parameter can affect the output variables dependent on that parameter. One such area is VLSI electrical circuit simulation where sensitivity parameters are circuit element parameters such as transistor channel width, length, resistance, capacitance, current sources, etc. In this context, the purpose of the sensitivity analysis is to evaluate how performance functions such as delay, slew rate, power, and noise margin are affected by small circuit parameter variations. The results obtained from this analysis are then used in the design process in such areas as design optimization, power analysis, statistical analysis, timing, and noise analysis.
Currently, there are two major approaches to obtain sensitivities from time domain circuit simulations: the adjoint method and the direct method. The adjoint method computes the sensitivity of one output variable with respect to all of the circuit parameters. The direct method provides sensitivity values of all circuit variables with respect to a single parameter. The drawbacks to each method can easily be seen. The adjoint method only allows the computation of sensitivity values based on a single output variable, whereas the direct method only allows computations involving a single parameter. Additionally, the adjoint method for transient analysis is based on Tellegen's theorem and requires that Jacobian matrices of the original circuit be stored at each time point.
Neither of the two major approaches provides an optimal solution from a design automation standpoint to be used on large networks. A new approach is needed that will combine the best features of both methods while eliminating the drawbacks. That is, a Sensitivity Analysis method that combines the best of the two major approaches (adjoint and direct methods), that can also be used with fast simulation tools is needed.